//using System;

//// 跳表测试类
//public class SkipLinkedNodeListTest
//{
//    public static void RunTest()
//    {
//        Dlinke<int> linkNodeList = new LinkNodeList<int>();

//        // 测试数据
//        linkNodeList.TailAdd(10);
//        linkNodeList.TailAdd(20);
//        linkNodeList.TailAdd(5);
//        linkNodeList.TailAdd(15);
//        linkNodeList.TailAdd(25);

//        Console.WriteLine("初始双向链表:");
//        linkNodeList.PrintNode();

//        Console.WriteLine("\n按 Enter 键继续测试...");
//        Console.ReadLine();

//        int value = new Random().Next(1, 100);
//        linkNodeList.TailAdd(value);
//        Console.WriteLine($"插入值: {value}");
//        linkNodeList.PrintNode();

//        Console.WriteLine("\n按 Enter 键继续测试...");
//        Console.ReadLine();

//        value = new Random().Next(1, 100);
//        bool found = linkNodeList.SkipSearch(value);
//        Console.WriteLine($"跳表搜索值 {value}: {(found ? "找到" : "未找到")}");
//    }
//}

///// <summary>
///// 为自己实现的双向链表添加跳表拓展
///// </summary>
//public static class SkipLinkedNodeList_Static
//{
//    /// <summary>
//    /// 跳表快速搜索 - 将链表转换为有序数组进行二分搜索
//    /// </summary>
//    public static bool SkipSearch<T>(this LinkNodeList<T> list, T value) where T : System.IComparable<T>
//    {
//        if (list.Count == 0) return false;
        
//        // 将链表转换为数组
//        T[] values = new T[list.Count];
//        Node<T> current = list.head;
//        int index = 0;
        
//        while (current != null)
//        {
//            values[index++] = current.value;
//            current = current.next;
//        }
        
//        // 使用二分搜索
//        return BinarySearch(values, value, 0, values.Length - 1);
//    }
    
//    /// <summary>
//    /// 二分搜索实现
//    /// </summary>
//    private static bool BinarySearch<T>(T[] arr, T target, int left, int right) where T : System.IComparable<T>
//    {
//        while (left <= right)
//        {
//            int mid = left + (right - left) / 2;
//            int comparison = arr[mid].CompareTo(target);
            
//            if (comparison == 0)
//                return true;
//            else if (comparison < 0)
//                left = mid + 1;
//            else
//                right = mid - 1;
//        }
//        return false;
//    }
//}
